GNU Readline是一個軟體庫,可為具有命令列介面(例如Bash)的互動式程式英語interactive program提供行編輯器和歷史記錄功能。是GNU計劃的一部分,目前由Chet Ramey維護。

Quick Facts 原作者, 開發者 ...
GNU Readline
Thumb
原作者布萊恩·福克斯
開發者Chet Ramey
首次釋出1989年,​35年前​(1989
目前版本8.2(2022年9月26日,​2年前​(2022-09-26
原始碼庫 編輯維基數據鏈結
程式語言C
類型
授權條款GNU通用公眾授權條款
網站tiswww.case.edu/php/chet/readline/rltop.html
Close

使用者可以移動文字游標,搜尋命令歷史,控制kill ring(一個更靈活的剪貼簿),並在文字終端上使用Tab鍵自動完成。作為一個跨平臺的庫,readline允許不同系統上的應用程式展現相同的行編輯行為。

GPL授權條款

GNU Readline是一個著名的自由軟體庫,它是通過GNU通用公眾授權條款(GPL)進行授權的。而其他的自由軟體庫通常是通過GNU寬公用授權條款(LGPL)進行授權,例如GNU C庫GNU GettextFLTK[1]但其它軟體在分發時,如果連結到像GNU Readline這種GPL協定的庫,必須將與之相連的整個軟體以GPL協定進行授權,以符合GPL第5章的規定。[2][3]自由軟體基金會為GNU Readline選用了這個授權協定,以鼓勵其它軟體選用GPL協定。[4]

範例代碼

下面的代碼是C語言的,必須通過向編譯器傳遞-lreadline標誌來連結到readline庫:

#include <stdlib.h>
#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>

int main()
{
    // Configure readline to auto-complete paths when the tab key is hit.
    rl_bind_key('\t', rl_complete);

    while (1) {
        // Display prompt and read input
        char* input = readline("prompt> ");

        // Check for EOF.
        if (!input)
            break;

        // Add input to readline history.
        add_history(input);

        // Do stuff...

        // Free buffer that was allocated by readline
        free(input);
    }
    return 0;
}

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.